home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ccdl150l.zip / SORT / TEST / SRCHTST.C < prev   
C/C++ Source or Header  |  1996-07-03  |  2KB  |  43 lines

  1. typedef struct {
  2.     char name[20];
  3.     int n;
  4. } X;
  5. X list1[] = { {"A",1},{"B",2},{"C",3},{"D",4},{"E",5} };
  6. X list2[] = { {"A",6},{"B",7},{"C",8},{"D",9},{"E",10},{"F",11} };
  7. X list3[] = { {"A",12},{"B",13},{"C",14},{"D",15},{"E",16},{"F",17},{"G",18} };
  8. int compare(X *a,X *b)
  9. {
  10.     return(strcmp(&a->name,&b->name));
  11. }
  12. void *bsearch(char *a,X*b,int c,int d,int (*comp)());
  13. void main(void)
  14. {
  15.     printf("%d\n",((X *)bsearch("A",list1,5,sizeof(X),compare))->n);
  16.     printf("%d\n",((X *)bsearch("B",list1,5,sizeof(X),compare))->n);
  17.     printf("%d\n",((X *)bsearch("C",list1,5,sizeof(X),compare))->n);
  18.     printf("%d\n",((X *)bsearch("D",list1,5,sizeof(X),compare))->n);
  19.     printf("%d\n",((X *)bsearch("E",list1,5,sizeof(X),compare))->n);
  20.  
  21.     printf("%d\n",((X *)bsearch("A",list2,6,sizeof(X),compare))->n);
  22.     printf("%d\n",((X *)bsearch("B",list2,6,sizeof(X),compare))->n);
  23.     printf("%d\n",((X *)bsearch("C",list2,6,sizeof(X),compare))->n);
  24.     printf("%d\n",((X *)bsearch("D",list2,6,sizeof(X),compare))->n);
  25.     printf("%d\n",((X *)bsearch("E",list2,6,sizeof(X),compare))->n);
  26.     printf("%d\n",((X *)bsearch("F",list2,6,sizeof(X),compare))->n);
  27.  
  28.     printf("%d\n",((X *)bsearch("A",list3,7,sizeof(X),compare))->n);
  29.     printf("%d\n",((X *)bsearch("B",list3,7,sizeof(X),compare))->n);
  30.     printf("%d\n",((X *)bsearch("C",list3,7,sizeof(X),compare))->n);
  31.     printf("%d\n",((X *)bsearch("D",list3,7,sizeof(X),compare))->n);
  32.     printf("%d\n",((X *)bsearch("E",list3,7,sizeof(X),compare))->n);
  33.     printf("%d\n",((X *)bsearch("F",list3,7,sizeof(X),compare))->n);
  34.     printf("%d\n",((X *)bsearch("G",list3,7,sizeof(X),compare))->n);
  35.  
  36.     printf("%d\n",bsearch("Z",list1,5,sizeof(X),compare));
  37.     printf("%d\n",bsearch("1",list1,5,sizeof(X),compare));
  38.     printf("%d\n",bsearch("Z",list2,6,sizeof(X),compare));
  39.     printf("%d\n",bsearch("1",list2,6,sizeof(X),compare));
  40.     printf("%d\n",bsearch("Z",list3,7,sizeof(X),compare));
  41.     printf("%d\n",bsearch("1",list3,7,sizeof(X),compare));
  42.  
  43. }